using System;
using System.Collections.Generic;
using RFS.Domain.PaiShi;
using RFS.Domain.PaiShi.Accounting;
using RFS.Domain.PaiShi.WorkFlow;

namespace RFS.BizLogic.PaiShi.Accounting
{
    public interface IAccountingVoucherManager
    {
        
        // [Obsolete("use the one in VoucherSetWrapper")]
        // IOrderItemBasedAccountingVoucher CreateAV(   IOrderItem gho,  IOrderItem yso);
        
        // [Obsolete("use the one in VoucherSetWrapper")]
        // IOrderItemBasedAccountingVoucher CreateAV(  IEnumerable<IOrderItem> gho,  IEnumerable<IOrderItem> yso);
        IDayBasedWorkFlowNodeAccountingVoucherSetWrapper CreateAVs();

        IOrderItemBasedAccountingVoucher GetMyVoucherByOrderId(string bizid,bool onlyDebit=true );
        IWorkFlowNodeWrapper GetHistoryUnRecorderOrder(AccountPeriod period);
        IDayBasedWorkFlowNodeAccountingVoucherSetWrapper GetDayBasedVoucherSet(AccountPeriod perio);
        IWorkFlowNodeWrapper GetLeftNode(AccountPeriod period);
        IWorkFlowNodeWrapper GetRightNode(AccountPeriod period,bool IncludeFromProductionLine=true, bool IncludeFromRegroup=false);
        IWorkFlowNodeWrapper GetNode(AccountPeriod accPeriod, AccountPeriod jyPeriod, BizFlowNodeEnum node);
    }
}